/* Copyright (C) 2008-2020 Allegro DVT2.  All rights reserved. */
/**************************************************************************//*!
   \addtogroup FourCC
   @{
   \file
 *****************************************************************************/

#pragma once
#include "lib_common/FourCC.h"

/*************************************************************************//*!
   \brief Returns the FOURCC identifier of the framebuffer the encoder is expecting
   according to the chosen encoding chroma mode, bitdepth and storage mode.
   \param[in] picFmt source picture format
   \return Returns the corresponding TFourCC format
*****************************************************************************/
TFourCC AL_EncGetSrcFourCC(AL_TPicFormat const picFmt);

/*************************************************************************//*!
   \brief Returns the TPicFormat of the framebuffer the encoder is expecting
   according to the chosen encoding chroma mode, bitdepth, storage and compression mode.
   \param[in] eChromaMode source picture chroma mode
   \param[in] uBitDepth source picture bit depth
   \param[in] eStorageMode source picture storage mode
   \param[in] bIsCompressed true if source picture is compressed, false otherwise
   \return Returns the corresponding TPicFormat
*****************************************************************************/
AL_TPicFormat AL_EncGetSrcPicFormat(AL_EChromaMode eChromaMode, uint8_t uBitDepth, AL_EFbStorageMode eStorageMode, bool bIsCompressed);

/*************************************************************************//*!
   \brief Returns the FOURCC identifier of the reconstructed frame buffer
   generated by the encoder according to the chosen decoded chroma mode, bitdepth
   and storage mode.
   \param[in] picFmt reconstructed picture format
   \return Returns the corresponding TFourCC format
*****************************************************************************/
TFourCC AL_GetRecFourCC(AL_TPicFormat const picFmt);

/*************************************************************************//*!
   \brief Returns the TPicFormat of the reconstructed frame buffer
   according to the chosen encoding chroma mode, bitdepth, and compression mode.
   \param[in] eChromaMode reconstructed picture chroma mode
   \param[in] uBitDepth reconstructed picture bit depth
   \param[in] bIsCompressed true if reconstructed picture is compressed, false otherwise
   \return Returns the corresponding TPicFormat
*****************************************************************************/
AL_TPicFormat AL_EncGetRecPicFormat(AL_EChromaMode eChromaMode, uint8_t uBitDepth, bool bIsCompressed);

/*@}*/

